package com.qzsoft.zhjd.server.modules.ludong.contaminant.mapper;

import com.qzsoft.zhjd.server.modules.ludong.contaminant.Dto.EnvWarningFlagDto;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

@Mapper
public interface EnvWarningFlagMapper extends BaseMapper<EnvWarningFlagDto> {
    /**
     * 获取阈值
     * @param deviceId
     * @return
     */
    JSONObject selectThresholdValue(String deviceId);

    /**
     * 获取入库时间最早一条用来判断当前数据是否大于持续时间
     * @param device_id
     * @param dept_id
     * @param noiseThresholdName
     * @return
     */
    EnvWarningFlagDto getFirstData(@Param("deviceId") String device_id, @Param("deptId") String dept_id, @Param("noiseThresholdName") String noiseThresholdName);

    /**
     * 获取产能
     * @param params
     * @return
     */
    String getCNtime(@Param("param") Map<String, Object> params);

    /**
     * 油石比检测获取日期
     * @param params
     * @return
     */
    String getYSBtime(Map<String, Object> params);

    /**
     * 关键筛孔通过率
     * @param params
     * @return
     */
    String getSKtime(Map<String, Object> params);

    /**
     * 生产监控数据
     * @param params
     * @return
     */
    String getSCtime(Map<String, Object> params);

    /**
     * 统计分析产量统计分析
     * @param params
     * @return
     */
    String getCtime(Map<String, Object> params);

    /**
     * 各项目产量统计
     * @param params
     * @return
     */
    String getGXMtime(Map<String, Object> params);

    /**
     * 统计分析材料消耗偏差统计
     * @param params
     * @return
     */
    String getCLXHtime(Map<String, Object> params);

    /**
     * 分页数据
     * @param page
     * @param params
     * @return
     */
    IPage<EnvWarningFlagDto> reportPage(IPage<EnvWarningFlagDto> page,@Param("params") Map<String, Object> params);

    /**
     * 获取是否存在数据
     * @param dept_id
     * @param noiseThresholdName
     * @param device_id
     * @return
     */
    int getCount(@Param("deviceId") String device_id, @Param("deptId") String dept_id, @Param("noiseThresholdName") String noiseThresholdName);

    /**
     * 查看
     * @param id
     * @return
     */
    EnvWarningFlagDto getInfo(@Param("id") String id);
}
